﻿
function Qgrabar()
{ var xRes;
  var xQs="Desea guardar los datos ingresados.";

  xRes=window.confirm(xQs);
  return(xRes);
}

function Qborrar()
{ var xRes;
  var xQs="Está seguro de eliminar los elementos seleccionados.";

  xRes=window.confirm(xQs);
  return(xRes);
}

function Qdocs()
{ var xRes;
  var xQs="Está seguro de guardar los documentos.";

  xRes=window.confirm(xQs);
  return(xRes);
}

function Error(xMsg)
{var xTit="Existen datos que tienen errores o no han sido ingresados\r\n\r\n";

	window.alert(xTit+xMsg);
}

function CerrarVentana()
{	
	window.close();
}

function Uno(x){
x.className = "";
}

function Dos(x){
x.className = "TresD";
}

function Linea( x ) {
  //x.style.backgroundColor ="#F6F5E8";
  x.style.cursor = "hand";
}

function NoLinea( x ) {
  //x.style.backgroundColor = "#ffffff";  
  x.style.cursor = "default";
}
//LineaSinLink = Linea Sin Link  (Cursor Hand)
function LineaSinLink( x ) {
  x.style.backgroundColor ="#F6F5E8";
  x.style.cursor = "Crosshair";  
}

function NoLineaSinLink( x ) {
  x.style.backgroundColor = "#ffffff";  
  x.style.cursor = "default";
}

function Ir(xUrl){
   document.location.href = xUrl;
}

function Ventana( xUrl, xStyle ){
  window.showModalDialog(xUrl, '', xStyle);
}

function Marcar( x ) {   
  x.style.background = "#FFE200";
  //x.style.backgroundColor ="#faebd7";
}

function DesMarcar( x ) { 
  x.style.background ="white";
}

function FormatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num)) num = "0";

cents = Math.floor((num*100+0.5)%100);

num = Math.floor(num).toString();
if(cents < 10) cents = "0" + cents; 
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) 
num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3)); 
return ( num + '.' + cents ); 
}

function Valida_Valor(xValor){

if (xValor=="") return true;
if (xValor=="0") return true;

return(false);
}

//function ConvertirAFecha(string) {
//  var date = new Date()
//  mes = parseInt(string.substring(3, 5));
//  date.setMonth(mes - 1); //en javascript los meses van de 0 a 11
//  date.setDate(string.substring(0, 2));
//  date.setYear(string.substring(6, 10));
//  return date;
//}

// Esta función es usado para validar las fechas
function Valida_Date(xFecha){
var xD="", xM="", xA="";
var xRes=false;

if (xFecha.length>9)
{
	xD=xFecha.substr(0,2);
	xM=xFecha.substr(3,2);
	xA=xFecha.substr(6,4);
		
	if (NoEsFecha(xD,xM,xA)) xRes=false;
	else xRes=true;
}

if (!xRes) Error("La fecha ingresada es incorrecta.");

return (xRes);
}



function Check_Date(xFecha){
var xD="", xM="", xA="";

if (xFecha.length>9)
{
	xD=xFecha.substr(0,2);
	xM=xFecha.substr(3,2);
	xA=xFecha.substr(6,4);
}

return ( NoEsFecha(xD,xM,xA));
}

function ComparaFecha(xFecha, xInicio, xFinal){
    var xA, xM, xD;
    var xDate, xDateI, xDateF;
    var yMes=0;
    var xMsg="";

	xD=xFecha.substr(0,2);
	xM=xFecha.substr(3,2);
	xA=xFecha.substr(6,4);	
	xDate=new Date(xA, xM-1, xD);	
		
	xD=xInicio.substr(0,2);
	xM=xInicio.substr(3,2);
	xA=xInicio.substr(6,4);	
	xDateI=new Date(xA, xM-1, xD);
	if (NoEsFecha( xD,xM,xA)) xMsg+="- La fecha " + xInicio+ " no es una fecha válida.\r\n";
	
	xD=xFinal.substr(0,2);
	xM=xFinal.substr(3,2);
	xA=xFinal.substr(6,4);
	xDateF=new Date(xA, xM-1, xD);
	if (NoEsFecha( xD,xM,xA)) xMsg+="- La fecha " + xFinal+ " no es una fecha válida.\r\n";
	
	if ( xDate<xDateI) xMsg="- La fecha " + xFecha + " es menor a " + xInicio+".\r\n";
	if ( xDate>xDateF) xMsg="- La fecha " + xFecha + " es mayor a " + xFinal +".\r\n";
	
	return (xMsg);
}

function ComparaFechas(xFMenor,xFMayor)
{
    var xA, xM, xD;
    var xDateI, xDateF;
    var xMsg="";
    
    xD=xFMenor.substr(0,2);
    xM=xFMenor.substr(3,2);
    xA=xFMenor.substr(6,4);
    xDateI= new Date(xA, xM-1, xD);
    if (NoEsFecha(xD,xM,xA)) xMsg+="- La fecha " + xFMenor+ " no es una fecha válida.\r\n";
    
    xD=xFMayor.substr(0,2);
    xM=xFMayor.substr(3,2);
    xA=xFMayor.substr(6,4);
    xDateF= new Date(xA, xM-1, xD);
    if (NoEsFecha(xD,xM,xA)) xMsg+="- La fecha " + xFMayor+ " no es una fecha válida.\r\n";
    
    if (xDateI > xDateF) xMsg+="- La fecha " + xFMenor + " es posterior a " + xFMayor + ".\r\n";
    
    return(xMsg);   
}

function VerificaFechaNacimiento(xFecha)
{
    var xA, xM, xD, xAf;
    var xDateI, xDateF;
    var xMsg="";
    
    xD=xFecha.substr(0,2);
    xM=xFecha.substr(3,2);
    xA=xFecha.substr(6,4);
    xDateI=new Date(xA,xM-1,xD);
    if (NoEsFecha(xD,xM,xA)) xMsg+="- La fecha " + xFecha +" no es una fecha válida.\r\n";
    
    xDateF = new Date();
    xAf=xDateF.getYear();
    if ((xAf-xA)<18) xMsg+="- La persona tiene menos de 18 años de edad.\r\n";
    
    return(xMsg);
}

function VerificaFecha(xFecha)
{
    var xA,xM,xD;
    var xDateI, xDateF;
    var xMsg="";
    
    xD=xFecha.substr(0,2);
    xM=xFecha.substr(3,2);
    xA=xFecha.substr(6,4);
    xDateI=new Date(xA,xM-1,xD);
    if (NoEsFecha(xD,xM,xA)) xMsg+="- La fecha " + xFecha +" no es una fecha válida.\r\n";
    
    xDateF = new Date();
    xD=xDateF.getDate();
    xM=xDateF.getMonth();
    xA=xDateF.getYear();
    
    xDateA=new Date(xA,xM,xD);
            
    if (xDateI > xDateA) xMsg+="- La fecha " + xFecha + " es posterior a la de hoy.\r\n";

    return(xMsg);    
}

function NoEsFecha(xDia,xMes,xAno){
var yMes=xMes - 1;
var xFecha= new Date(xAno,yMes,xDia,00,00,00,000);
var oMes=xFecha.getMonth() +1;
var oDia=xFecha.getDate();
var oAno=xFecha.getFullYear();

if (xDia == "") return true;

if (xDia.length == 1) return true;

if (xDia > 31 ) return true;
 
if (xMes == "") return true;
   
if (xMes.length == 1) return true;

if (xMes > 12 ) return true;
      
if (xAno == "") return true;

if (xAno.length < 4) return true;

if ( oDia == xDia )
   return false;
else 
   return true;  
}

function SoloNros(xCode){
if ((xCode < 48) || (xCode >57)) event.returnValue =false;
}

function SoloTexto(e) {
        tecla = (document.all) ? e.keyCode : e.which;
        if (tecla==8) return true;
        patron =/[A-Za-z]/;
        te = String.fromCharCode(tecla);
        return patron.test(te);
    }

function Valores(xCode,xDato){
var xRs

if ( xCode == 47 ) event.returnValue=false;
else {
	xRs=xDato.indexOf(".",1);
	if ( xRs > 0 & xCode==46) event.returnValue=false;
	else
    if ((xCode < 46) || (xCode >57)) event.returnValue =false;}
}

function NoDigitar(xCode){
event.returnValue =false;
}


function TotalDias( xFecha ){ 
var xAno, xMes, xDia

xAno = xFecha.substr(0,4);
xMes = xFecha.substr(4,2);
xDia = xFecha.substr(6,2);
return ( (xAno * 365 ) + (xMes * 30 ) + (xDia *1) );
}

function Nombre_Archivo(xArchivo){
var x=0;
var y=0;
var xFileName="";
var xC="";

x=xArchivo.length - 1;

for (y=x; y>0; y--){
	xC=xArchivo.substr(y,1);
	if ( xArchivo.charCodeAt(y) == 92 ) break;
	xFileName= xC + xFileName;
}
return (xFileName.toUpperCase());
}

function EsFechaValida(source, arguments){
    esValida = false;
    try{
        var xDia,xMes,xAno;
        arr = arguments.Value.split('/');
        xDia = arr[0];
        xMes = arr[1];
        xAno = arr[2];
        var yMes=xMes - 1;
        var xFecha= new Date(xAno,yMes,xDia,00,00,00,000);
        var oMes=xFecha.getMonth() +1;
        var oDia=xFecha.getDate();
        var oAno=xFecha.getFullYear();

        if (xDia == "") esValida = false;

        if (xDia.length == 1) esValida = false;

        if (xDia > 31 ) esValida = false;
         
        if (xMes == "") esValida = false;
           
        if (xMes.length == 1) esValida = false;

        if (xMes > 12 ) esValida = false;
              
        if (xAno == "") esValida = false;

        if (xAno.length < 4) esValida = false;

        if ( oDia == xDia )
           esValida = true;
        else 
           esValida = false;
    }catch(ex){
        esValida = false;
    }
    
    arguments.IsValid = esValida;
}

function Formatearadecimales(Numero, Decimales) 
{     
var pot = Math.pow(10, Decimales);     
var num = parseInt(Numero * pot) / pot;     
var nume = num.toString().split('.');       
var entero = nume[0];     
var decima = nume[1];       
var fin;     
if (decima != undefined) 
{         
fin = Decimales - decima.length;     
}     
else 
{         
decima = '';         
fin = Decimales;     
}      
 for (i = 0; i < fin; i++)         
decima += String.fromCharCode(48);       
var buffer = "";     
var marca = entero.length - 1;     
var chars = 1;     
while (marca >= 0) 
{         
if ((chars % 4) == 0) 
{             
buffer = "." + buffer;         
}         
buffer = entero.charAt(marca) + buffer;         
marca--;         chars++;     }     
if (decima != '')         
num = buffer + ',' + decima;     
else        
num = buffer;     
return num; }

function ValidarNumero(Total, numDecimales) {
    if ( ((event.keyCode >= 48) && (event.keyCode <= 57)) ||    //0 .. 9
         ((event.keyCode >= 96) && (event.keyCode <= 105))   )  // 0 .. 9 numerico
       {
        var txt = new String(event.srcElement.value);
        var posPoint = txt.indexOf(".");
        var lonDecimales = numDecimales + (numDecimales == 0 ? 0 : 1)
        if ((posPoint < 0) && (txt.length < Total - lonDecimales))
            return;
        else if (txt.length < Total) 
             { // Validar longitud
                // validar numero decimales
                    if ((posPoint > 0) && (numDecimales > 0)) 
                    {
                    var nd = txt.length - posPoint;
                    if (nd <= numDecimales)
                        return;
                    }
            }
        }
    else if ((event.keyCode == 8) || (event.keyCode == 9) || 
             (event.keyCode == 27) || (event.keyCode == 46)) //Back, Tab, Esc, Del
        return;
    else if (event.keyCode == 110) { // Punto decimal "."
        var texto = new String(event.srcElement.value);
        if ((texto.indexOf(".") < 0) & (numDecimales > 0))
            return;        
        }
    event.cancelBubble = true;
    event.returnValue = '';
}    
// mascara completa con ceros derecha
function CompletarNumero(Total, numDecimales,simbol) {
    var txt = new String(event.srcElement.value);
    var posPoint = txt.indexOf(simbol);
    var entero = "";
    var dec = "";
    var punto = simbol;
    if (numDecimales == 0) {
        entero = txt;
        punto = "";
        }
    else {
        if (posPoint < 0) {
            entero = txt;
            for(var i=0; i<numDecimales; i++)
                dec += "0";
            }
        else {
            entero = txt.substring(0, posPoint);
            dec = txt.substring(posPoint+1);
            for(var i=dec.length; i<numDecimales; i++)
                dec += "0";
            }
        }
    event.srcElement.value = (entero==""?"0":entero) + punto + dec;
}    

//mascara con simolo
function ValidarNumeroSimbol(Total, numDecimales,simbol,codesimbol) {
    
    if ( ((event.keyCode >= 48) && (event.keyCode <= 57)) ||    //0 .. 9
         ((event.keyCode >= 96) && (event.keyCode <= 105)) ||   // 0 .. 9 numerico
         ((event.keyCode >= 35) && (event.keyCode <= 40)) )  
       {
        var txt = new String(event.srcElement.value);
        var posPoint = txt.indexOf(simbol);
        var lonDecimales = numDecimales + (numDecimales == 0 ? 0 : 1)
        if ((posPoint < 0) && (txt.length < Total - lonDecimales))
            return;
        else if (txt.length < Total) { // Validar longitud
            // validar numero decimales
            if ((posPoint > 0) && (numDecimales > 0)) {
                var nd = txt.length - posPoint;
                if (nd <= numDecimales)
                    return;
                }
            }
           if ((txt.length == Total-numDecimales-1) && (posPoint<0)) {
              event.srcElement.value = event.srcElement.value + simbol;
              }
        }
   else if ((event.keyCode == 8) || (event.keyCode == 9) || 
             (event.keyCode == 27) || (event.keyCode == 46)) //Back, Tab, Esc, Del
        return;
    else if (event.keyCode == codesimbol) { // Punto decimal "."
        var texto = new String(event.srcElement.value);
        if ((texto.indexOf(simbol) < 0) & (numDecimales > 0))
            return;        
        }
    
    event.cancelBubble = true;
    event.returnValue = '';
}  

//completa con ceros a la izquierda
function CompletarCerosIzSimbol(Total, numDecimales,simbol) {
    var txt = new String(event.srcElement.value);
    var posPoint = txt.indexOf(simbol);
    var entero = "";
    var dec = "";
    var misimbol = simbol;
    
    if ((numDecimales==0) || (txt.length==0 )) 
        {
        entero = txt;
        misimbol = "";
        }
    else {
        if (posPoint < 0) 
        {
            entero = txt;
            for(var i=0; i<numDecimales; i++)
                dec = "0" + dec;
                
            if ((entero.length > 0) && (entero.length<Total-numDecimales)) {                
            for(var i=0; i<(Total - (numDecimales + 1)) ; i++) {
                 var milen = entero.length;
                 entero = "0" + entero; 
                 }
                }
            }
            
        else 
        {
            entero = txt.substring(0, posPoint);
            dec = txt.substring(posPoint+1);
            for(var i=dec.length; i<numDecimales; i++)
                dec = "0" + dec;
            for(var i=entero.length; i<Total - (numDecimales + 1); i++)
                entero = "0" + entero;  
            }
        }
    event.srcElement.value = entero + misimbol + dec ;
} 
       
function replaceAll(text, strA, strB) 
{
    while ( text.indexOf(strA) != -1)
    {
        text = text.replace(strA,strB);
    }
    return text;
}

function EnBlanco(xCode)
{
    event.returnValue=false;
}

function NroDiasEntreFechas(strFechaFin, strFechaIni) {   
      
   //Obtiene dia, mes y año   
   var fecha1 = new fecha( strFechaFin )      
   var fecha2 = new fecha( strFechaIni )   
      
   //Obtiene objetos Date   
   var miFecha1 = new Date( fecha1.anio, fecha1.mes, fecha1.dia )   
   var miFecha2 = new Date( fecha2.anio, fecha2.mes, fecha2.dia )   
  
   //Resta fechas y redondea   
   var diferencia = miFecha1.getTime() - miFecha2.getTime()   
   var dias = Math.floor(diferencia / (1000 * 60 * 60 * 24))   
   var segundos = Math.floor(diferencia / 1000)   
      
   return dias   
}   

function fecha( cadena ) {   
  
   //Separador para la introduccion de las fechas   
   var separador = "/"  
  
   //Separa por dia, mes y año   
   if ( cadena.indexOf( separador ) != -1 ) {   
        var posi1 = 0   
        var posi2 = cadena.indexOf( separador, posi1 + 1 )   
        var posi3 = cadena.indexOf( separador, posi2 + 1 )   
        this.dia = cadena.substring( posi1, posi2 )   
        this.mes = cadena.substring( posi2 + 1, posi3 )   
        this.anio = cadena.substring( posi3 + 1, cadena.length )   
   } else {   
        this.dia = 0   
        this.mes = 0   
        this.anio = 0      
   }  
}  
   
function MostrarDialogo(xUrl,xSelf, xHeight, xWidth)
{
    var xDatos=null;
    var xStilo="";

    xStilo="dialogheight: "+ xHeight +"px; dialogwidth: " + xWidth +"px; center: yes; status: no; modal=yes";
    xDatos=window.showModalDialog(xUrl,xSelf, xStilo); 

    if (xDatos == "undefined")
        xDatos=null;
    return(xDatos);
}

function VerificarEmail(xEmail)
{ 
    var xMsg ="";      
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(xEmail)) {
        xMsg ="";                
    }
    else{
        xMsg ="- La dirección de email es incorrecta.";          
    }

    return(xMsg);    
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
